The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions.
Given a large collection (millions or billions) of small sets of items (which may be called market baskets) sampled from an existing universe of items (such as products, services, or search terms), automated recommendation of items is often based on the identification of frequently occurring item sets, which are sets of items that were purchased together. There are other recommendation algorithms, such collaborative filtering, for circumstances when system users sample one item at a time. Frequent item sets is for circumstances when system users sample items together. Market basket analysis is a process in which retailers evaluate information in such market baskets to understand the purchase behavior of customers and/or the searching behavior of potential customers. This information can then be analyzed for purposes of cross-selling, the practice of selling an additional product or service to an existing customer. Examples of market basket analysis for cross selling are automated recommendations such as “customers who bought book A also bought book B,” and “People who read ‘History of Portugal’ were also interested in ‘Naval History.’” Many database systems use the Apriori algorithm to evaluate frequent item sets for market basket analysis. The Apriori algorithm first identifies the individual items that appear the most frequently in a database's item sets, and then extends these frequent individual items to larger and larger item sets, provided that the larger item sets appear sufficiently often in the database's sets.
Depending on the nature and size of the item sets, a frequent pattern (FP) tree algorithm can execute much faster than the Apriori algorithm executes. The frequent pattern tree algorithm places item sets in a tree, recursively building the tree based on the count for each of the items in the item sets. For each item set, the frequent pattern tree algorithm sorts its items, left to right, in descending order. The frequent pattern tree algorithm identifies the leftmost item with the most item sets, removes this item from the item sets, and represents this item as a root node with the count of all its item sets. Then the frequent pattern tree algorithm recursively looks at the second position in the descending order of items, and finds the most represented remaining item, and represents that item as a child node. The frequent pattern tree algorithm repeats this process, representing more items as child nodes until the frequent pattern tree algorithm is done with the descending order of items, thereby creating a tree in which each original item set is a path in the tree. Then the frequent pattern tree algorithm generates all of the possible item sets by proceeding upward from the leaves in the tree. If the item sets include enough repetition of items, the frequent pattern tree algorithm can execute in memory.